// es6中{}一般是块级别作用域，{}里面用let定义的变量属于这个块级作用域，{}外界访问不到。
{
    let a = 10
    console.log(a) //10
}
// console.log(a) //undefed


let b = 200 //全局b
{
    let b = 100 //块级b 和全局b不会冲突。
    {
        console.log(b) //100 就近向外查找
        {
            console.log(b) //100
        }
    }
}

// if和while for循环的{}也是块级作用域
let a=400
if(true){
    a=300
    console.log(a) //300
}
console.log(a)//未定义

// （） 小括号里面的变量i属于{}里面的私有变量i，外界访问不到
for(let i=0;i<5;i++){
    // 循环5次，{}形成5个单独的块级作用域，每个块级作用域中都有一个私有变量i,i的值就是每一次循环i的值。
    console.log(i)
}
